package com.sprouting.ops.model;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sprouting.ops.annotations.invoke.CheckIsNullOrEmpty;
import com.sprouting.ops.annotations.invoke.CheckLength;
import com.sprouting.ops.annotations.invoke.CheckNotNull;
import com.sprouting.ops.interfaces.AddGroup;
import com.sprouting.ops.interfaces.UpdGroup;
import lombok.Data;

/**
 * 厂商人员(OpsThirdPartyUser)(OPS_THIRD_PARTY_USER) 表实体类
 *
 * @author ：lx（长沙麓谷）
 * @date 创建时间：2025-07-31 21:53:11
 */
@Data
@TableName("ops_third_party_user")
public class OpsThirdPartyUser extends BaseModel {

    /**
     * 主键
     */
    @CheckNotNull(message = "非法ID", groups = UpdGroup.class)
    @CheckIsNullOrEmpty(message = "无效ID", groups = AddGroup.class)
    @TableId
    private String id;
    /**
     * 所属厂商
     * @see OpsThirdParty#getId()
     */
    @CheckNotNull(message = "请选择所属厂商")
    private String thirdPartyId;
    /**
     * 人员头像
     * @see DromaraFileStorage#getId()
     */
    private String ico;
    /**
     * 人员名称
     */
    @CheckLength(min = 1, max = 150, message = "人员名称超过长度限制")
    @CheckNotNull(message = "请输入人员名称")
    private String userName;
    /**
     * 性别
     * @see com.sprouting.ops.interfaces.ConstantBase.Sex
     */
    private Integer sex;
    /**
     * 职位
     */
    @CheckLength(max = 100, message = "职位超过长度限制")
    private String position;
    /**
     * 项目角色
     */
    @CheckLength(max = 100, message = "项目角色超过长度限制")
    private String role;
    /**
     * 电话
     */
    @CheckLength(max = 15, message = "电话超过长度限制")
    private String phone;
    /**
     * 邮箱
     */
    @CheckLength(max = 255, message = "邮箱超过长度限制")
    private String email;
    /**
     * 备注
     */
    @CheckLength(max = 1000, message = "备注超过长度限制")
    private String description;

}
